package com.xbaoziplus.simple_spring.beans.factory.config;

/**
 * @author xbaozi
 * @version 1.0
 * @interfacename SingletonBeanRegistry
 * @date 2023-04-18  16:15
 * @description 单例对象注册接口
 */
public interface SingletonBeanRegistry {

    /**
     * @description 返回以给定名称注册的（原始）单例对象。只检查已经实例化的单例；不会为尚未实例化的单例 bean 定义返回对象。
     * @author xbaozi
     * @date 2023/4/18 16:17
     * @param beanName  单例对象名
     **/
    Object getSingleton(String beanName);

    /**
     * @description 在给定的 bean 名称下，在 bean 注册表中将给定的现有对象注册为单例。
     * @author xbaozi
     * @date 2023/4/18 16:17
     * @param beanName  单例对象名
     * @param singletonObject   具体单例对象
     **/
    void registerSingleton(String beanName, Object singletonObject);
}
